home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-06 / segue.exe / BD_DEMO.PRG < prev    next >
Text File  |  1991-07-24  |  27KB  |  1,221 lines

  1. *.............................................................................
  2. *   Program Name: BD_DEMO.PRG       Copyright: HRF Associates, Inc.
  3. *   Date Created: 05/05/91           Language: Clipper
  4. *   Time Created: 20:27:54             Author: Bob Fogle
  5. *.............................................................................
  6. * NOTE: The following code was written for demo purposes, not for efficiency.
  7. *
  8. mLASTCOLOR  = SETCOLOR()
  9. mLASTSCREEN = SAVESCREEN(00,00,24,79)
  10. mLASTCURROW = ROW()
  11. mLASTCURCOL = COL()
  12. end_flag = .F.
  13. SET wrap ON
  14. SET message TO 23 center
  15.  
  16. DO WHILE .T.
  17.   DO MNU
  18.   IF end_flag
  19.     @ mLASTCURROW-2,mLASTCURCOL
  20.     RESTSCREEN(00,00,24,79,mLASTSCREEN)
  21.     SETCOLOR(mLASTCOLOR)
  22.     RETURN
  23.   ENDIF
  24. ENDDO
  25.  
  26. PROCEDURE MNU
  27. LOCAL mCHOICE :=1
  28. SETCOLOR(if(iscolor()=.F.,NOCOLOR,"BG+/B,B/W+,,,W+/B"))
  29. CLEAR
  30. @ 00,00 TO 24,79 DOUBLE
  31. @ 03,48 TO 16,77
  32. @ 03,55 SAY " SEGUE SUPPLEMENT "
  33. @ 00,25 SAY " SEGUE BINDERY SERVICES DEMO "
  34. xx=3
  35. @  xx, 3 SAY "Select SEGUE API to demo:"
  36. xx=xx+2
  37. @ xx,10 PROMPT "Exit"        MESSAGE "Return to Main Menu"       //1
  38. xx=xx+1
  39. @ xx,10 PROMPT "BDOBAD()"    MESSAGE "Create Object"             //2
  40. xx=xx+1
  41. @ xx,10 PROMPT "BDOBDL()"    MESSAGE "Delete Object"             //3
  42. xx=xx+1
  43. @ xx,10 PROMPT "BDOBRN()"    MESSAGE "Rename Object"             //4
  44. xx=xx+1
  45. @ xx,10 PROMPT "BDOBID()"    MESSAGE "Get Object ID"             //5
  46. xx=xx+1
  47. @ xx,10 PROMPT "BDOBNM()"    MESSAGE "Get Object Name"           //6
  48. xx=xx+1
  49. @ xx,10 PROMPT "BDPTAD()"    MESSAGE "Create Property"           //7
  50. xx=xx+1
  51. @ xx,10 PROMPT "BDPTDL()"    MESSAGE "Delete Property"           //8
  52. xx=xx+1
  53. @ xx,10 PROMPT "BDPTVLWR()"  MESSAGE "Write Property Value"      //9
  54. xx=xx+1
  55. @ xx,10 PROMPT "BDPTVLRD()"  MESSAGE "Read Property Value"       //10
  56. xx=xx+1
  57. @ xx,10 PROMPT "BDPTOBAD()"  MESSAGE "Add Object To Set"         //11
  58. xx=xx-10
  59. @ xx,30 PROMPT "BDPTOBCK()"  MESSAGE "Is Object In Set"          //12
  60. xx=xx+1
  61. @ xx,30 PROMPT "BDPTOBDL()"  MESSAGE "Delete Object From Set"    //13
  62. xx=xx+1
  63. @ xx,30 PROMPT "BDOBPWCH()"  MESSAGE "Change Object Password"    //14
  64. xx=xx+1
  65. @ xx,30 PROMPT "BDOBPWVY()"  MESSAGE "Verify Object Password"    //15
  66. xx=xx+1
  67. @ xx,30 PROMPT "BDOBCHSY()"  MESSAGE "Change Object Security"    //16
  68. xx=xx+1
  69. @ xx,30 PROMPT "BDPTCHSY()"  MESSAGE "Change Property Security"  //17
  70. xx=xx+1
  71. @ xx,30 PROMPT "BDOBSN()"    MESSAGE "Scan Object"               //18
  72. xx=xx+1
  73. @ xx,30 PROMPT "BDPTSN()"    MESSAGE "Scan Property"             //19
  74. xx=xx+1
  75. @ xx,30 PROMPT "BDALG()"     MESSAGE "Get Bindery Access Level"  //20
  76. xx=xx+1
  77. @ xx,30 PROMPT "BDOP()"      MESSAGE "Open Bindery"              //21
  78. xx=xx+1
  79. @ xx,30 PROMPT "BDCL()"      MESSAGE "Close Bindery"             //22
  80. xx=xx-10
  81. @ xx,50 PROMPT "USRAD_()"    MESSAGE "SS Add User"               //23
  82. xx=xx+1
  83. @ xx,50 PROMPT "USRDL_()"    MESSAGE "SS Delete User"            //24
  84. xx=xx+1
  85. @ xx,50 PROMPT "USRSLST_()"  MESSAGE "SS List Users"             //25
  86. xx=xx+1
  87. @ xx,50 PROMPT "USRGRPLST_()" MESSAGE "SS List User's Groups"    //26
  88. xx=xx+1
  89. @ xx,50 PROMPT "USRINGRP_()" MESSAGE "SS Is User In Group"       //27
  90. xx=xx+1
  91. @ xx,50 PROMPT "GRPAD_()"    MESSAGE "SS Add Group"              //28
  92. xx=xx+1
  93. @ xx,50 PROMPT "GRPDL_()"    MESSAGE "SS Delete Group"           //29
  94. xx=xx+1
  95. @ xx,50 PROMPT "GRPSLST_()"  MESSAGE "SS List Groups"            //30
  96. xx=xx+1
  97. @ xx,50 PROMPT "GRPUSRLST_()" MESSAGE "SS List Group's Users"    //31
  98. xx=xx+1
  99. @ xx,50 PROMPT "GRPUSRAD_()" MESSAGE "SS Add User To Group"      //32
  100. xx=xx+1
  101. @ xx,50 PROMPT "GRPUSRDL_()" MESSAGE "SS Delete User From Group" //33
  102. xx=xx-10
  103. @ xx,64 PROMPT "SUPLST_()" MESSAGE "SS List Users w/Supervisor Security" //34
  104. xx=xx+1
  105.  
  106. MENU TO mCHOICE
  107. //
  108. DO CASE
  109.   CASE mCHOICE = 0 .or. mCHOICE = 1
  110.     end_flag=.T.
  111.   CASE mCHOICE = 2
  112.     DO NBDOBAD      // Demo FUNCTION PROCEDURE name
  113.   CASE mCHOICE = 3
  114.     DO NBDOBDL
  115.   CASE mCHOICE = 4
  116.     DO NBDOBRN
  117.   CASE mCHOICE = 5
  118.     DO NBDOBID
  119.   CASE mCHOICE = 6
  120.     DO NBDOBNM
  121.   CASE mCHOICE = 7
  122.     DO NBDPTAD
  123.   CASE mCHOICE = 8
  124.     DO NBDPTDL
  125.   CASE mCHOICE = 9
  126.     DO NBDPTVLWR
  127.   CASE mCHOICE = 10
  128.     DO NBDPTVLRD
  129.   CASE mCHOICE = 11
  130.     DO NBDPTOBAD
  131.   CASE mCHOICE = 12
  132.     DO NBDPTOBCK
  133.   CASE mCHOICE = 13
  134.     DO NBDPTOBDL
  135.   CASE mCHOICE = 14
  136.     DO NBDOBPWCH
  137.   CASE mCHOICE = 15
  138.     DO NBDOBPWVY
  139.   CASE mCHOICE = 16
  140.     DO NBDOBCHSY
  141.   CASE mCHOICE = 17
  142.     DO NBDPTCHSY
  143.   CASE mCHOICE = 18
  144.     DO NBDOBSN
  145.   CASE mCHOICE = 19
  146.     DO NBDPTSN
  147.   CASE mCHOICE = 20
  148.     DO NBDALG
  149.   CASE mCHOICE = 21
  150.     DO NBDOP
  151.   CASE mCHOICE = 22
  152.     DO NBDCL
  153.   CASE mCHOICE = 23
  154.     DO USRAD
  155.   CASE mCHOICE = 24
  156.     DO USRDL
  157.   CASE mCHOICE = 25
  158.     DO USRSLST
  159.   CASE mCHOICE = 26
  160.     DO USRGRPLST
  161.   CASE mCHOICE = 27
  162.     DO USRINGRP
  163.   CASE mCHOICE = 28
  164.     DO GRPAD
  165.   CASE mCHOICE = 29
  166.     DO GRPDL
  167.   CASE mCHOICE = 30
  168.     DO GRPSLST
  169.   CASE mCHOICE = 31
  170.     DO GRPUSRLST
  171.   CASE mCHOICE = 32
  172.     DO GRPUSRAD
  173.   CASE mCHOICE = 33
  174.     DO GRPUSRDL
  175.   CASE mCHOICE = 34
  176.     DO SUPLST
  177. ENDCASE
  178. RETURN
  179.  
  180. PROCEDURE INTRO
  181. PUBLIC XX
  182. CLEAR
  183. xx=ROW()
  184. xx=xx+1
  185. @ xx, 0 SAY "Demo for "+mDEMO+" API"
  186. xx=xx+2
  187. @ xx, 0
  188. RETURN
  189.  
  190. PROCEDURE CHKRTNUM
  191. PARAMETERS rtn
  192. IF rtn<0
  193.   ? "Error: ", rtn
  194. ELSE
  195.   @ 23,0 SAY "Successful ! ... Use SYSCON to check."
  196. ENDIF
  197. WAIT
  198. RETURN
  199.  
  200. PROCEDURE CHKRTNUM1
  201. PARAMETERS rtn
  202. IF rtn<0
  203.   ? "Error: ", rtn
  204. ELSE
  205.   @ 23,0 SAY "Successful ! ...."
  206. ENDIF
  207. WAIT
  208. RETURN
  209.  
  210. PROCEDURE CHKRTNUM2
  211. PARAMETERS rtn
  212. IF rtn<0
  213.   ? "Error: ", rtn
  214.   WAIT
  215.   OK=.F.
  216. elseif mCNT
  217.   ? "Count = ", LTRIM(STR(rtn))
  218.   WAIT
  219.   OK=.F.
  220. ENDIF
  221. RETURN
  222.  
  223. PROCEDURE CHKRTNUM3
  224. PARAMETERS rtn
  225. IF rtn<0
  226.   ? "Error: ", rtn
  227.   WAIT
  228.   OK=.F.
  229. ENDIF
  230. RETURN
  231.  
  232. PROCEDURE CHKRTNUM4
  233. PARAMETERS rtn
  234. IF rtn<0
  235.   ? "No, because: ", rtn
  236. ELSE
  237.   @ 23,0 SAY "Yes ! ...."
  238. ENDIF
  239. WAIT
  240. RETURN
  241.  
  242. PROCEDURE NBDOBAD
  243. LOCAL mobtyp, mobnm, mobid, mobflag, mobwsy, mobrsy, rtn, mcnt
  244. PRIVATE mDEMO := "BDOBAD(), Create Object"
  245. rtn=0
  246. DO intro
  247. mOBTYP = 1
  248. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  249. READ
  250. xx=xx+1
  251. mOBNM="SEGUE"+SPACE(41)
  252. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  253. READ
  254. xx=xx+1
  255. mOBNM  = LTRIM(RTRIM(mOBNM))
  256. xx=xx+1
  257. mOBFLAG = 0
  258. @ xx, 0 SAY "Enter Object Flag (0=STATIC, 1=DYNAMIC): " GET mOBFLAG
  259. READ
  260. xx=xx+1
  261. mOBWSY = 'WS'
  262. @ xx, 0 SAY "Enter Object's Write Security: " GET mOBWSY
  263. READ
  264. xx=xx+1
  265. @ xx, 0
  266. mOBRSY = 'RL'
  267. @ xx, 0 SAY "Enter Object's Read Security: " GET mOBRSY
  268. READ
  269. xx=xx+1
  270.  
  271. rtn = BDOBAD(mOBTYP, mOBNM, mOBFLAG, mOBWSY, mOBRSY )
  272. DO chkrtnum WITH rtn
  273. RETURN
  274.  
  275. PROCEDURE NBDOBDL
  276. LOCAL mOBTYP, mOBNM
  277. PRIVATE mDEMO := "BDOBDL(), Delete Object"
  278. rtn=0
  279. DO intro
  280. mOBTYP = 1
  281. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  282. READ
  283. xx=xx+1
  284. @ xx, 0
  285. mOBNM="SEGUE"+SPACE(41)
  286. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  287. READ
  288. xx=xx+1
  289. mOBNM  = LTRIM(RTRIM(mOBNM))
  290. xx=xx+2
  291.  
  292. rtn = BDOBDL(mOBTYP, mOBNM)
  293. DO chkrtnum WITH rtn
  294. RETURN
  295.  
  296. PROCEDURE NBDOBRN
  297. LOCAL mOBTYP, mOBNM, mOBNM2
  298. PRIVATE mDEMO := "BDOBRN(), Rename Object"
  299. rtn=0
  300. DO intro
  301. mOBTYP = 1
  302. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  303. READ
  304. xx=xx+1
  305. mOBNM="SEGUE"+SPACE(41)
  306. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  307. READ
  308. xx=xx+1
  309. mOBNM = LTRIM(RTRIM(mOBNM))
  310. mOBNM2="SEGUE-NC"+SPACE(40)
  311. @ xx, 0 SAY "Enter Object Name: " GET mOBNM2
  312. READ
  313. xx=xx+1
  314. mOBNM2 = LTRIM(RTRIM(mOBNM2))
  315.  
  316. rtn = BDOBRN(mOBTYP, mOBNM, mOBNM2)
  317. DO chkrtnum WITH rtn
  318. RETURN
  319.  
  320. PROCEDURE NBDOBID
  321. LOCAL obtyp, obnm
  322. PRIVATE mDEMO := "BDOBID(), Get Object ID"
  323. rtn=0
  324. DO intro
  325. mOBTYP = 1
  326. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  327. READ
  328. xx=xx+1
  329. @ xx, 0
  330. mOBNM="SEGUE"+SPACE(41)
  331. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  332. READ
  333. xx=xx+1
  334. mOBNM  = LTRIM(RTRIM(mOBNM))
  335. xx=xx+2
  336.  
  337. rtn = BDOBID(mOBTYP, mOBNM)
  338. IF rtn<0
  339.   ? "Error: ", rtn
  340. ELSE
  341.   @ 23,0 SAY "ID = "+TRANSFORM(rtn,"#############")
  342. ENDIF
  343. WAIT
  344. RETURN
  345.  
  346. PROCEDURE NBDOBNM
  347. LOCAL obid, obnm, rtn
  348. PRIVATE mDEMO :="BDOBNM(), Get Object Name"
  349. rtn=''
  350. DO intro
  351. mOBID = IF (BDOBID("SEGUE")>0,BDOBID("SEGUE"),0)
  352. @ xx, 0 SAY "Enter Object's ID (numeric long): " GET mOBID
  353. READ
  354. xx=xx+1
  355. rtn = BDOBNM(mOBID)
  356. IF ASC(rtn)>122
  357.   ? "Error: ", -ASC(rtn)
  358. ELSE
  359.   @ 23,0 SAY "NAME = " + rtn
  360. ENDIF
  361. WAIT
  362. RETURN
  363.  
  364. PROCEDURE NBDPTAD
  365. LOCAL mOBTYP, mOBNM, mPTNMm, PTTYP, mPTFLG, mPTWSY, mPTRSY, rtn
  366. PRIVATE mDEMO := "BDPTAD(), Create Property"
  367. rtn="" //0
  368. DO intro
  369. mOBTYP = 1
  370. @ xx, 0 SAY "Enter Object type: " GET mOBTYP
  371. READ
  372. xx=xx+1
  373. @ xx, 0
  374. mOBNM="SEGUE"+SPACE(41)
  375. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  376. READ
  377. mOBNM  = LTRIM(RTRIM(mOBNM))
  378. xx=xx+1
  379. mPTNM="IDENTIFICATION"+SPACE(17)
  380. @ xx, 0 SAY "Enter Property Name: " GET mPTNM
  381. READ
  382. mPTNM  = LTRIM(RTRIM(mPTNM))
  383. xx=xx+1
  384. mPTTYP = 0
  385. @ xx, 0 SAY "Enter Property Type: " GET mPTTYP
  386. READ
  387. xx=xx+1
  388. mPTFLG = 0
  389. @ xx, 0 SAY "Enter Property Flag: " GET mPTFLG
  390. READ
  391. xx=xx+1
  392. mPTWSY = 'WS'
  393. @ xx, 0 SAY "Enter Property Write Security: " GET mPTWSY
  394. READ
  395. xx=xx+1
  396. @ xx, 0
  397. mPTRSY = 'RL'
  398. @ xx, 0 SAY "Enter Property Read Security: " GET mPTRSY
  399. READ
  400. xx=xx+1
  401.  
  402. rtn = BDPTAD(mOBTYP, mOBNM, mPTNM, mPTTYP, mPTFLG, mPTWSY, mPTRSY)
  403. DO chkrtnum1 WITH rtn
  404. RETURN
  405.  
  406. PROCEDURE NBDPTDL
  407. LOCAL mOBTYP, mOBNM, mPTNM, rtn
  408. PRIVATE mDEMO := "BDPTDL(), Delete Property"
  409. rtn=0
  410. DO intro
  411. mOBTYP = 1
  412. @ xx, 0 SAY "Enter Object type: " GET mOBTYP
  413. READ
  414. xx=xx+1
  415. @ xx, 0
  416. mOBNM="SEGUE"+SPACE(41)
  417. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  418. READ
  419. mOBNM  = LTRIM(RTRIM(mOBNM))
  420. xx=xx+1
  421. mPTNM="IDENTIFICATION"+SPACE(7)
  422. @ xx, 0 SAY "Enter Property Name: " GET mPTNM
  423. READ
  424. mPTNM  = LTRIM(RTRIM(mPTNM))
  425. xx=xx+1
  426.  
  427. rtn = BDPTDL(mOBTYP, mOBNM, mPTNM)
  428. DO chkrtnum WITH rtn
  429. RETURN
  430.  
  431. PROCEDURE NBDPTVLWR
  432. LOCAL  mOBTYP, mOBNM, mSEGNO, mMORESEG, mPTNM, mPTVL, rtn
  433. PRIVATE mDEMO :="BDPTVLWR(), Write Property Value"
  434. rtn=0
  435. DO intro
  436. mOBTYP = 1
  437. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  438. READ
  439. xx=xx+1
  440. @ xx, 0
  441. mOBNM="SEGUE"+SPACE(41)
  442. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  443. READ
  444. mOBNM  = LTRIM(RTRIM(mOBNM))
  445. xx=xx+1
  446. mPTNM="IDENTIFICATION"+SPACE(7)
  447. @ xx, 0 SAY "Enter Property Name: " GET mPTNM
  448. READ
  449. mPTNM  = LTRIM(RTRIM(mPTNM))
  450. xx=xx+1
  451. mSEGNO=1
  452. @ xx, 0 SAY "Enter Segment Number: " GET mSEGNO
  453. READ
  454. xx=xx+1
  455. @ xx, 0
  456. mMORESEG=.F.
  457. @ xx, 0 SAY "Enter More Segments Flag: " GET mMORESEG
  458. READ
  459. xx=xx+1
  460. mPTVL="This is FULL NAME"+SPACE(42)
  461. @ xx, 0 SAY "Enter Property Value: " GET mPTVL
  462. READ
  463. mPTVL  = LTRIM(RTRIM(mPTVL))
  464. xx=xx+1
  465.  
  466. rtn = BDPTVLWR(mOBTYP, mOBNM, mPTNM, mSEGNO, mMORESEG, mPTVL)
  467. DO chkrtnum WITH rtn
  468. RETURN
  469.  
  470. PROCEDURE NBDPTVLRD
  471. LOCAL  mOBTYP, mOBNM, mPTNM, rtn, ptvl[0], ptdyn[0], pttp[0]
  472. PRIVATE mCNT :=.F., mDEMO :="BDPTVLRD(), Read Property Value"
  473. OK=.T.
  474. rtn=0
  475. DO intro
  476. CLEAR
  477. xx=ROW()
  478. xx=xx+1
  479. mOBTYP = 01
  480. @ xx,  0 SAY "Please enter Object type  : " GET mOBTYP
  481. xx=xx+1
  482. mOBNM=SPACE(46)
  483. @ xx, 0 SAY "Please enter Object Name  : " GET mOBNM
  484. xx=xx+1
  485. mPTNM=SPACE(15)
  486. @ xx,  0 SAY "Please enter Property Name: " GET mPTNM
  487. READ
  488. xx=xx+2
  489. @ xx, 1 SAY "OBJECT NAME = " + mOBNM
  490. xx=xx+1
  491. @ xx, 1 SAY "SEARCH PROPERTY NAME = " + mPTNM
  492. xx=xx+1
  493.  
  494. rtn = BDPTVLRD(mOBTYP, mOBNM, mPTNM, ptvl, ptdyn, pttp )
  495. DO chkrtnum2 WITH rtn
  496. IF .not. OK
  497.   RETURN
  498. ENDIF
  499.  
  500. FOR i = 1 TO LEN(ptvl)
  501.   @ xx+1, 1 SAY "Count               = "+ LTRIM(STR(i))
  502.   @ xx+2, 1 SAY "Property Value1     = "+ SUBSTR(ptvl[i],1,43)
  503.   @ xx+3, 1 SAY "Property Value2     = "+ SUBSTR(ptvl[i],44,43)
  504.   @ xx+4, 1 SAY "Property Value3     = "+ SUBSTR(ptvl[i],88,40)
  505.   @ xx+5, 1 SAY "Property Dynamic    = "+ ptdyn[i]
  506.   @ xx+6, 1 SAY "Property Type       = "+ pttp[i]
  507.   WAIT
  508.   @ xx, 1 CLEAR TO xx+7,79
  509. NEXT
  510. RETURN
  511.  
  512. PROCEDURE NBDPTOBAD
  513. LOCAL  mOBTYP, mOBNM, mPTNM, mMBRTYP, mMBRNM, rtn
  514. PRIVATE mDEMO :="BDPTOBAD(), Add Object To Set"
  515. rtn=0
  516. DO intro
  517. mOBTYP = 2
  518. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  519. READ
  520. xx=xx+1
  521. @ xx, 0
  522. mOBNM="EVERYONE"+SPACE(41)
  523. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  524. READ
  525. mOBNM  = LTRIM(RTRIM(mOBNM))
  526. xx=xx+1
  527. mPTNM="GROUP_MEMBERS"+SPACE(7)
  528. @ xx, 0 SAY "Enter Property Name: " GET mPTNM
  529. READ
  530. mPTNM  = LTRIM(RTRIM(mPTNM))
  531. xx=xx+1
  532. mMBRTYP = 1
  533. @ xx, 0 SAY "Enter Member's type: " GET mMBRTYP
  534. READ
  535. xx=xx+1
  536. @ xx, 0
  537. mMBRNM="SEGUE"+SPACE(41)
  538. @ xx, 0 SAY "Enter Member's Name: " GET mMBRNM
  539. READ
  540. mMBRNM  = LTRIM(RTRIM(mMBRNM))
  541. xx=xx+1
  542.  
  543. rtn = BDPTOBAD(mOBTYP, mOBNM, mPTNM, mMBRTYP, mMBRNM)
  544. DO chkrtnum WITH rtn
  545. RETURN
  546.  
  547. PROCEDURE NBDPTOBCK
  548. LOCAL  mOBTYP, mOBNM, mPTNM, mMBRTYP, mMBRNM, rtn
  549. PRIVATE mDEMO :="BDPTOBCK(), Is Object In Set"
  550. rtn=0
  551. DO intro
  552. mOBTYP = 2
  553. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  554. READ
  555. xx=xx+1
  556. @ xx, 0
  557. mOBNM="EVERYONE"+SPACE(41)
  558. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  559. READ
  560. mOBNM  = LTRIM(RTRIM(mOBNM))
  561. xx=xx+1
  562. mPTNM="GROUP_MEMBERS"+SPACE(7)
  563. @ xx, 0 SAY "Enter Property Name: " GET mPTNM
  564. READ
  565. mPTNM  = LTRIM(RTRIM(mPTNM))
  566. xx=xx+1
  567. mMBRTYP = 1
  568. @ xx, 0 SAY "Enter Member's type: " GET mMBRTYP
  569. READ
  570. xx=xx+1
  571. @ xx, 0
  572. mMBRNM="SEGUE"+SPACE(41)
  573. @ xx, 0 SAY "Enter Member's Name: " GET mMBRNM
  574. READ
  575. mMBRNM  = LTRIM(RTRIM(mMBRNM))
  576. xx=xx+1
  577.  
  578. rtn = BDPTOBCK(mOBTYP, mOBNM, mPTNM, mMBRTYP, mMBRNM)
  579. DO chkrtnum1 WITH rtn
  580. RETURN
  581.  
  582. PROCEDURE NBDPTOBDL
  583. LOCAL  mOBTYP, mOBNM, mPTNM, mMBRTYP, mMBRNM, rtn
  584. PRIVATE mDEMO :="BDPTOBDL(), Delete Object From Set"
  585. rtn=0
  586. DO intro
  587. mOBTYP = 2
  588. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  589. READ
  590. xx=xx+1
  591. @ xx, 0
  592. mOBNM="EVERYONE"+SPACE(41)
  593. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  594. READ
  595. mOBNM  = LTRIM(RTRIM(mOBNM))
  596. xx=xx+1
  597. mPTNM="GROUP_MEMBERS"+SPACE(7)
  598. @ xx, 0 SAY "Enter Property Name: " GET mPTNM
  599. READ
  600. mPTNM  = LTRIM(RTRIM(mPTNM))
  601. xx=xx+1
  602. mMBRTYP = 1
  603. @ xx, 0 SAY "Enter Member's type: " GET mMBRTYP
  604. READ
  605. xx=xx+1
  606. @ xx, 0
  607. mMBRNM="SEGUE"+SPACE(41)
  608. @ xx, 0 SAY "Enter Member's Name: " GET mMBRNM
  609. READ
  610. mMBRNM  = LTRIM(RTRIM(mMBRNM))
  611. xx=xx+1
  612.  
  613. rtn = BDPTOBDL(mOBTYP, mOBNM, mPTNM, mMBRTYP, mMBRNM)
  614. DO chkrtnum WITH rtn
  615. RETURN
  616.  
  617. PROCEDURE NBDOBPWCH
  618. LOCAL  mOBTYP, mOBNM, mOLDPASS, mNEWPASS, rtn
  619. PRIVATE mDEMO :="BDOBPWCH(), Change Object Password"
  620. rtn=0
  621. DO intro
  622. mOBTYP = 1
  623. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  624. READ
  625. xx=xx+1
  626. @ xx, 0
  627. mOBNM="SEGUE"+SPACE(41)
  628. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  629. READ
  630. xx=xx+1
  631. mOBNM  = LTRIM(RTRIM(mOBNM))
  632. @ xx, 0
  633. mOLDPASS=SPACE(47)
  634. @ xx, 0 SAY "Enter Old Password Name: " GET mOLDPASS
  635. READ
  636. mOLDPASS = LTRIM(RTRIM(mOLDPASS))
  637. xx=xx+1
  638. @ xx, 0
  639. mNEWPASS="SECRET"+SPACE(41)
  640. @ xx, 0 SAY "Enter New Password Name: " GET mNEWPASS
  641. READ
  642. mNEWPASS = LTRIM(RTRIM(mNEWPASS))
  643. rtn = BDOBPWCH(mOBTYP, mOBNM, mOLDPASS, mNEWPASS)
  644. DO chkrtnum WITH rtn
  645. RETURN
  646.  
  647. PROCEDURE NBDOBPWVY
  648. LOCAL  mOBTYP, mOBNM, mPSWRD, rtn
  649. PRIVATE mDEMO :=" BDOBPWVY(), Verify Object Password"
  650. rtn=0
  651. DO intro
  652. mOBTYP = 1
  653. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  654. READ
  655. xx=xx+1
  656. @ xx, 0
  657. mOBNM="SEGUE"+SPACE(41)
  658. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  659. READ
  660. xx=xx+1
  661. mOBNM  = LTRIM(RTRIM(mOBNM))
  662. @ xx, 0
  663. mPSWRD="SECRET"+SPACE(47)
  664. @ xx, 0 SAY "Enter Password: " GET mPSWRD
  665. READ
  666. mPSWRD = LTRIM(RTRIM(mPSWRD))
  667. xx=xx+1
  668. rtn =  BDOBPWVY(mOBTYP, mOBNM, mPSWRD)
  669. DO chkrtnum WITH rtn
  670. RETURN
  671.  
  672. PROCEDURE NBDOBCHSY
  673. LOCAL  mobtyp, mobnm, mobid, mobwsy, mobrsy, rtn, mcnt
  674. PRIVATE mDEMO := "BDOBCHSY(), Change Object Security"
  675. rtn=0
  676. DO intro
  677. mOBTYP = 1
  678. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  679. READ
  680. xx=xx+1
  681. mOBNM="SEGUE"+SPACE(41)
  682. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  683. READ
  684. xx=xx+1
  685. mOBNM  = LTRIM(RTRIM(mOBNM))
  686. xx=xx+1
  687. mOBWSY = 'WS'
  688. @ xx, 0 SAY "Enter Object's Write Security: " GET mOBWSY
  689. READ
  690. xx=xx+1
  691. @ xx, 0
  692. mOBRSY = 'RA'
  693. @ xx, 0 SAY "Enter Object's Read Security: " GET mOBRSY
  694. READ
  695. rtn = BDOBCHSY(mOBTYP, mOBNM, mOBWSY, mOBRSY)
  696. DO chkrtnum WITH rtn
  697. RETURN
  698.  
  699. PROCEDURE NBDPTCHSY
  700. LOCAL  mobtyp, mobnm, mobid, mptnm, mptwsy, mptrsy, rtn, mcnt
  701. PRIVATE mDEMO := "BDPTCHSY(), Change Property Security"
  702. rtn=0
  703. DO intro
  704. mOBTYP = 1
  705. @ xx, 0 SAY "Enter Object's type: " GET mOBTYP
  706. READ
  707. xx=xx+1
  708. mOBNM="SEGUE"+SPACE(41)
  709. @ xx, 0 SAY "Enter Object Name: " GET mOBNM
  710. READ
  711. mOBNM  = LTRIM(RTRIM(mOBNM))
  712. xx=xx+1
  713. mPTNM="IDENTIFICATION"+SPACE(41)
  714. @ xx, 0 SAY "Enter Object Name: " GET mPTNM
  715. READ
  716. mPTNM  = LTRIM(RTRIM(mPTNM))
  717. xx=xx+1
  718. mPTWSY = 'WO'
  719. @ xx, 0 SAY "Enter Property's Write Security: " GET mPTWSY
  720. READ
  721. xx=xx+1
  722. @ xx, 0
  723. mPTRSY = 'RA'
  724. @ xx, 0 SAY "Enter Property's Read Security: " GET mPTRSY
  725. READ
  726. rtn = BDPTCHSY(mOBTYP, mOBNM, mPTNM, mPTWSY, mPTRSY)
  727. DO chkrtnum1 WITH rtn
  728. RETURN
  729.  
  730. PROCEDURE NBDOBSN
  731. LOCAL  obid[0], mOBTYP[0], mOBNM[0], obflag[0], obsy[0], obpt[0]
  732. PRIVATE mDEMO :="BDOBSN(), Scan Object", rtn, mcnt
  733. OK=.T.
  734. rtn=0
  735. DO intro
  736. xx=ROW()
  737. mOBJNM=SPACE(46)
  738. @ xx, 0 SAY "Please enter Search Object Name: " GET mOBJNM
  739. READ
  740. xx=xx+1
  741. mOBJNM  = UPPER(ALLTRIM(mOBJNM))
  742. mOBJTYP = 0
  743. @ xx, 0 SAY "Please enter Search Object type: " GET mOBJTYP
  744. READ
  745. xx=xx+1
  746. mCN = 'N'
  747. @ xx, 0 SAY "Do you want only a count ? (Y/N) " GET mCN
  748. READ
  749. mCNT = IF (UPPER(mCN)='Y',.T.,.F.)
  750. xx=xx+2
  751. @ xx, 1 SAY "SEARCH OBJECT NAME = " + mOBJNM
  752.  
  753. rtn = BDOBSN(mOBJTYP, mOBJNM, mCNT, @obid, @mOBTYP, @mOBNM, @obflag, @obsy, @obpt)
  754. DO chkrtnum2 WITH rtn
  755. IF .not. OK
  756.   RETURN
  757. ENDIF
  758.  
  759. FOR i = 1 TO LEN(obid)
  760.   @ xx+1, 1 SAY "Count                  = "+ LTRIM(STR(i))
  761.   @ xx+2, 1 SAY "Object ID              = "+ LTRIM(STR(obid[i]))
  762.   @ xx+3, 1 SAY "Object Type            = "+ LTRIM(STR(mOBTYP[i]))
  763.   @ xx+4, 1 SAY "Object Name            = "+ mOBNM[i]
  764.   @ xx+5, 1 SAY "Object Flag            = "+ obflag[i]
  765.   @ xx+6, 1 SAY "Object Security        = "+ obsy[i]
  766.   @ xx+7, 1 SAY "Object Has Properties  = "+ IF (obpt[i]=.F.,"No","Yes")
  767.   WAIT
  768.   @ xx, 1 CLEAR TO xx+8,79
  769. NEXT
  770. RETURN
  771.  
  772. PROCEDURE NBDPTSN
  773. LOCAL mOBTYP, mOBNM, mPTNM, ptname[0], ptdyn[0], pttp[0], ptsy[0], ptvl[0]
  774. PRIVATE mDEMO :="BDOBSN(), Scan Property", rtn, mCNT, OK
  775. OK=.T.
  776. rtn=0
  777. DO intro
  778. xx=ROW()
  779. xx=xx+1
  780. mOBTYP = '  '
  781. @ xx,  0 SAY "Please enter Object type: " GET mOBTYP
  782. READ
  783. mOBTYP = VAL(mOBTYP)
  784. xx=xx+1
  785. mOBNM=SPACE(46)
  786. @ xx, 0 SAY "Please enter Object Name: " GET mOBNM
  787. READ
  788. xx=xx+1
  789. mPTNM=SPACE(15)
  790. @ xx,  0 SAY "Please enter Search Property Name: " GET mPTNM
  791. READ
  792. xx=xx+1
  793. mCN = 'N'
  794. @ xx, 0 SAY "Do you want only a count ? (Y/N) " GET mCN
  795. READ
  796. mCNT = IF (UPPER(mCN)='Y',.T.,.F.)
  797. xx=xx+2
  798. @ xx, 1 SAY "OBJECT NAME = " + mOBNM
  799. xx=xx+1
  800. @ xx, 1 SAY "SEARCH PROPERTY NAME = " + mPTNM
  801. xx=xx+1
  802.  
  803. rtn = BDPTSN(mOBTYP, mOBNM, mPTNM, mCNT, @ptname, @ptdyn, @pttp, @ptsy, @ptvl)
  804. DO chkrtnum2 WITH rtn
  805. IF .not. OK
  806.   RETURN
  807. ENDIF
  808.  
  809. FOR i = 1 TO LEN(ptname)
  810.   @ xx+1, 1 SAY "Count               = "+ LTRIM(STR(i))
  811.   @ xx+2, 1 SAY "Property Name       = "+ ptname[i]
  812.   @ xx+3, 1 SAY "Property Dynamic    = "+ ptdyn[i]
  813.   @ xx+4, 1 SAY "Property Type       = "+ pttp[i]
  814.   @ xx+5, 1 SAY "Property Security   = "+ ptsy[i]
  815.   @ xx+6, 1 SAY "Property Has Values = "+ IF (ptvl[i]=.F.,"No","Yes")
  816.   WAIT
  817.   @ xx, 1 CLEAR TO xx+7,79
  818. NEXT
  819. RETURN
  820.  
  821. PROCEDURE NBDALG
  822. LOCAL  rtn
  823. PRIVATE mDEMO :="BDALG(), Get Bindery Access Level"
  824. DO intro
  825. rtn = BDALG()
  826. ? "Bindery Access Level = " + rtn
  827. WAIT
  828. RETURN
  829.  
  830. PROCEDURE NBDOP
  831. LOCAL  rtn
  832. PRIVATE mDEMO :="BDOP(), Open Bindery"
  833. DO intro
  834. rtn = BDOP()
  835. DO chkrtnum1 WITH rtn
  836. RETURN
  837.  
  838. PROCEDURE NBDCL
  839. LOCAL  rtn
  840. PRIVATE mDEMO :="BDCL(), Close Bindery"
  841. DO intro
  842. rtn = BDCL()
  843. DO chkrtnum1 WITH rtn
  844. RETURN
  845.  
  846. PROCEDURE USRAD
  847. LOCAL  mOBNM, mOBFNM, mPSWRD, RTN
  848. PRIVATE mDEMO := "USRAD_(), SS  Add User"
  849. rtn=0
  850. DO intro
  851. mOBNM= "NEWUSER"+"                                 "
  852. @ xx, 0 SAY "Enter User's Name:      " GET mOBNM
  853. READ
  854. mOBNM  = LTRIM(RTRIM(mOBNM))
  855. xx=xx+1
  856. mOBFNM="NEWUSER FULL NAME GOES HERE"+"             "
  857. @ xx, 0 SAY "Enter User's Full Name: " GET mOBFNM
  858. READ
  859. mOBFNM  = LTRIM(RTRIM(mOBFNM))
  860. xx=xx+1
  861. mPSWRD="SECRET"+"                                  "
  862. @ xx, 0 SAY "Enter User's Password:  " GET mPSWRD
  863. READ
  864. mPSWRD  = LTRIM(RTRIM(mPSWRD))
  865. xx=xx+1
  866.  
  867. rtn = USRAD_(mOBNM, mOBFNM, mPSWRD)
  868. DO chkrtnum WITH rtn
  869. RETURN
  870.  
  871. PROCEDURE USRDL //24
  872. LOCAL  mOBNM, RTN
  873. PRIVATE mDEMO := "USRDL_(), SS  Delete User"
  874. rtn=0
  875. DO intro
  876. mOBNM= "NEWUSER"+"                                 "
  877. @ xx, 0 SAY "Enter User's Name:      " GET mOBNM
  878. READ
  879. mOBNM  = LTRIM(RTRIM(mOBNM))
  880. xx=xx+1
  881.  
  882. rtn = USRDL_(mOBNM)
  883. DO chkrtnum WITH rtn
  884. RETURN
  885.  
  886. PROCEDURE USRSLST          //25
  887. LOCAL  mUSRNM[0], mUSRSY[0]
  888. PRIVATE mDEMO :="USRSLST(), SS  List Users", rtn
  889. OK=.T.
  890. rtn=0
  891. DO intro
  892. xx=ROW()
  893. mUSRJNM=SPACE(46)
  894. @ xx, 0 SAY "Please enter User Search String (wildcard OK): " GET mUSRJNM
  895. READ
  896. xx=xx+1
  897. rtn = USRSLST_(mUSRJNM,@mUSRNM,@mUSRSY)
  898. DO chkrtnum3 WITH rtn
  899. IF .not. OK
  900.   RETURN
  901. ENDIF
  902.  
  903. @ 5,0 CLEAR TO 23,79
  904. xx=5
  905. yy=0
  906. FOR i = 1 TO LEN(mUSRNM)
  907.   IF xx=5
  908.     @ xx,  yy SAY "Cnt User Name                Scty "
  909.     @ xx+1,yy SAY "═══ ════════════════════════ ═════"
  910.     xx=xx+2
  911.   ENDIF
  912.   @ xx,  yy    SAY TRANSFORM(i,"###")
  913.   @ xx,  yy+4  SAY TRANSFORM(mUSRNM[i],"XXXXXXXXXXXXXXXXXXXXXXXX")
  914.   @ xx,  yy+29 SAY TRANSFORM(mUSRSY[i],"XXXX")
  915.   xx=xx+1
  916.   IF xx=23
  917.     xx=5
  918.     IF yy=0
  919.       yy=yy+43
  920.     ELSE
  921.       yy=0
  922.       @ 23,0
  923.       @ 23,0 SAY "Press any key to continue..."
  924.       INKEY(0)
  925.       @ 5,0 CLEAR TO 23,79
  926.     ENDIF
  927.   ENDIF
  928. NEXT
  929. @ 23,0
  930. @ 23,0 SAY "Press any key to return..."
  931. INKEY(0)
  932. RETURN
  933.  
  934. PROCEDURE USRGRPLST          //26
  935. LOCAL mUSRJNM, mUSRGRPNM[0]
  936. PRIVATE mDEMO :="USRGRPLST_(), SS  List User's Groups", rtn
  937. OK=.T.
  938. rtn=0
  939. DO intro
  940. xx=ROW()
  941. mUSRJNM=SPACE(46)
  942. @ xx, 0 SAY "Please enter User's Name (no wildcards): " GET mUSRJNM
  943. READ
  944. xx=xx+1
  945. rtn = USRGRPLST_(mUSRJNM, @mUSRGRPNM)
  946. DO chkrtnum3 WITH rtn
  947. IF .not. OK
  948.   RETURN
  949. ENDIF
  950.  
  951. @ 5,0 CLEAR TO 23,79
  952. xx=5
  953. yy=0
  954. FOR i = 1 TO LEN(mUSRGRPNM)
  955.   IF xx=5
  956.     @ xx,  yy SAY "Cnt Group Name     "
  957.     @ xx+1,yy SAY "═══ ═══════════════"
  958.     xx=xx+2
  959.   ENDIF
  960.   @ xx,  yy    SAY TRANSFORM(i,"###")
  961.   @ xx,  yy+4  SAY TRANSFORM(mUSRGRPNM[i],"XXXXXXXXXXXXXX")
  962.   xx=xx+1
  963.   IF xx=23
  964.     xx=5
  965.     IF yy=0
  966.       yy=yy+43
  967.     ELSE
  968.       yy=0
  969.       @ 23,0
  970.       @ 23,0 SAY "Press any key to continue..."
  971.       INKEY(0)
  972.       @ 5,0 CLEAR TO 23,79
  973.     ENDIF
  974.   ENDIF
  975. NEXT
  976. @ 23,0
  977. @ 23,0 SAY "Press any key to return..."
  978. INKEY(0)
  979. RETURN
  980.  
  981. PROCEDURE GRPSLST          //31
  982. LOCAL  mGRPNM[0], mGRPSY[0]
  983. PRIVATE mDEMO :="GRPSLST(), SS  List Groups", rtn
  984. OK=.T.
  985. rtn=0
  986. DO intro
  987. xx=ROW()
  988. mGRPJNM=SPACE(46)
  989. @ xx, 0 SAY "Please enter Group Search String (wildcard OK): " GET mGRPJNM
  990. READ
  991. xx=xx+1
  992. rtn = GRPSLST_(mGRPJNM,@mGRPNM,@mGRPSY)
  993. DO chkrtnum3 WITH rtn
  994. IF .not. OK
  995.   RETURN
  996. ENDIF
  997.  
  998. @ 5,0 CLEAR TO 23,79
  999. xx=5
  1000. yy=0
  1001. FOR i = 1 TO LEN(mGRPNM)
  1002.   IF xx=5
  1003.     @ xx,  yy SAY "Cnt Group Name               Scty "
  1004.     @ xx+1,yy SAY "═══ ════════════════════════ ═════"
  1005.     xx=xx+2
  1006.   ENDIF
  1007.   @ xx,  yy    SAY TRANSFORM(i,"###")
  1008.   @ xx,  yy+4  SAY TRANSFORM(mGRPNM[i],"XXXXXXXXXXXXXXXXXXXXXXXX")
  1009.   @ xx,  yy+29 SAY TRANSFORM(mGRPSY[i],"XXXX")
  1010.   xx=xx+1
  1011.   IF xx=23
  1012.     xx=5
  1013.     IF yy=0
  1014.       yy=yy+43
  1015.     ELSE
  1016.       yy=0
  1017.       @ 23,0
  1018.       @ 23,0 SAY "Press any key to continue..."
  1019.       INKEY(0)
  1020.       @ 5,0 CLEAR TO 23,79
  1021.     ENDIF
  1022.   ENDIF
  1023. NEXT
  1024. @ 23,0
  1025. @ 23,0 SAY "Press any key to return..."
  1026. INKEY(0)
  1027. RETURN
  1028.  
  1029. PROCEDURE USRINGRP //27
  1030. LOCAL  mOBNM, RTN
  1031. PRIVATE mDEMO := "USRINGRP_ SS  Is User In Group"
  1032. rtn=0
  1033. DO intro
  1034. mOBNM= "SEGUE" + "                                 "
  1035. @ xx, 0 SAY "Enter User's Name:      " GET mOBNM
  1036. READ
  1037. mOBNM  = LTRIM(RTRIM(mOBNM))
  1038. xx=xx+1
  1039. mGPNM= "EVERYONE" + "                                 "
  1040. @ xx, 0 SAY "Enter Groups's Name:      " GET mGPNM
  1041. READ
  1042. mGPNM  = LTRIM(RTRIM(mGPNM))
  1043. xx=xx+1
  1044. rtn = USRINGRP_(mOBNM,mGPNM)
  1045. DO chkrtnum4 WITH rtn
  1046. RETURN
  1047.  
  1048. PROCEDURE GRPAD
  1049. LOCAL  mOBNM, mOBFNM, mPSWRD, RTN
  1050. PRIVATE mDEMO := "GRPAD_(), SS  Add Group"
  1051. rtn=0
  1052. DO intro
  1053. mOBNM= "NEWGROUP"+"                                 "
  1054. @ xx, 0 SAY "Enter Group's Name:      " GET mOBNM
  1055. READ
  1056. mOBNM  = LTRIM(RTRIM(mOBNM))
  1057. xx=xx+1
  1058. mOBFNM="NEWGROUP FULL NAME GOES HERE"+"             "
  1059. @ xx, 0 SAY "Enter Groups's Full Name: " GET mOBFNM
  1060. READ
  1061. mOBFNM  = LTRIM(RTRIM(mOBFNM))
  1062. xx=xx+1
  1063.  
  1064. rtn = GRPAD_(mOBNM, mOBFNM)
  1065. DO chkrtnum WITH rtn
  1066. RETURN
  1067.  
  1068. PROCEDURE GRPDL
  1069. LOCAL  mOBNM, RTN
  1070. PRIVATE mDEMO := "GRPDL_(), SS  Delete Group"
  1071. rtn=0
  1072. DO intro
  1073. mOBNM= "NEWGROUP"+"                                 "
  1074. @ xx, 0 SAY "Enter Groups's Name:      " GET mOBNM
  1075. READ
  1076. mOBNM  = LTRIM(RTRIM(mOBNM))
  1077. xx=xx+1
  1078.  
  1079. rtn = GRPDL_(mOBNM)
  1080. DO chkrtnum WITH rtn
  1081. RETURN
  1082.  
  1083. PROCEDURE GRPUSRLST       //31
  1084. LOCAL mGRPNM, mGRPUSRNM[0]
  1085. PRIVATE mDEMO :="GRPUSRLST_(), SS  List Group's Users", rtn
  1086. OK=.T.
  1087. rtn=0
  1088. DO intro
  1089. xx=ROW()
  1090. mGRPNM=SPACE(46)
  1091. @ xx, 0 SAY "Please enter Groups's Name (no wildcards): " GET mGRPNM
  1092. READ
  1093. xx=xx+1
  1094. rtn = GRPUSRLST_(mGRPNM, @mGRPUSRNM)
  1095. DO chkrtnum3 WITH rtn
  1096. IF .not. OK
  1097.   RETURN
  1098. ENDIF
  1099.  
  1100. @ 5,0 CLEAR TO 23,79
  1101. xx=5
  1102. yy=0
  1103. FOR i = 1 TO LEN(mGRPUSRNM)
  1104.   IF xx=5
  1105.     @ xx,  yy SAY "Cnt User Name"
  1106.     @ xx+1,yy SAY "═══ ═══════════════"
  1107.     xx=xx+2
  1108.   ENDIF
  1109.   @ xx,  yy    SAY TRANSFORM(i,"###")
  1110.   @ xx,  yy+4  SAY TRANSFORM(mGRPUSRNM[i],"XXXXXXXXXXXXXX")
  1111.   xx=xx+1
  1112.   IF xx=23
  1113.     xx=5
  1114.     IF yy=0
  1115.       yy=yy+43
  1116.     ELSE
  1117.       yy=0
  1118.       @ 23,0
  1119.       @ 23,0 SAY "Press any key to continue..."
  1120.       INKEY(0)
  1121.       @ 5,0 CLEAR TO 23,79
  1122.     ENDIF
  1123.   ENDIF
  1124. NEXT
  1125. @ 23,0
  1126. @ 23,0 SAY "Press any key to return..."
  1127. INKEY(0)
  1128. RETURN
  1129.  
  1130. PROCEDURE GRPUSRAD   //32
  1131. LOCAL  mOBNM, RTN
  1132. PRIVATE mDEMO := "GRPUSRAD_() SS  Add User To Group"
  1133. rtn=0
  1134. DO intro
  1135. mOBNM= "SEGUE" + "                                    "
  1136. @ xx, 0 SAY "Enter User's Name:      " GET mOBNM
  1137. READ
  1138. mOBNM  = LTRIM(RTRIM(mOBNM))
  1139. xx=xx+1
  1140. mGPNM= "EVERYONE" + "       "
  1141. @ xx, 0 SAY "Enter Groups's Name:      " GET mGPNM
  1142. READ
  1143. mGPNM  = LTRIM(RTRIM(mGPNM))
  1144. xx=xx+1
  1145. rtn = GRPUSRAD_(mOBNM, mGPNM)
  1146. DO chkrtnum WITH rtn
  1147. RETURN
  1148.  
  1149. PROCEDURE GRPUSRDL   //33
  1150. LOCAL  mOBNM, RTN
  1151. PRIVATE mDEMO := "GRPUSRDL_() SS  Delete User From Group"
  1152. rtn=0
  1153. DO intro
  1154. mOBNM= "SEGUE" + "                                    "
  1155. @ xx, 0 SAY "Enter User's Name:      " GET mOBNM
  1156. READ
  1157. mOBNM  = LTRIM(RTRIM(mOBNM))
  1158. xx=xx+1
  1159. mGPNM= "EVERYONE" + "       "
  1160. @ xx, 0 SAY "Enter Groups's Name:      " GET mGPNM
  1161. READ
  1162. mGPNM  = LTRIM(RTRIM(mGPNM))
  1163. xx=xx+1
  1164. rtn = GRPUSRDL_(mOBNM, mGPNM)
  1165. DO chkrtnum WITH rtn
  1166. RETURN
  1167.  
  1168. PROCEDURE SUPLST //34
  1169. LOCAL  mOBTYP, mUSRJNM, mUSRNM[0], mOBTP[0], rtn
  1170. PRIVATE mDEMO :="SUPLST_(), SS  List Users w/Supervisor Security"
  1171. OK=.T.
  1172. rtn=0
  1173. do intro
  1174. xx=row()
  1175. mOBTYP = 0
  1176. @ xx,  0 say "Please enter Object type: " get mOBTYP
  1177. read
  1178. xx=xx+1
  1179. mUSRJNM=space(46)
  1180. @ xx, 0 say "Please enter Object Search String (wildcard OK): " get mUSRJNM
  1181. read
  1182. xx=xx+1
  1183. rtn = SUPLST_(mOBTYP,mUSRJNM,@mUSRNM,@mOBTP)
  1184. *? rtn
  1185. *wait
  1186. do chkrtnum3 with rtn
  1187. if .not. OK
  1188.   return
  1189. endi
  1190.  
  1191. @ 5,0 clear to 23,79
  1192. xx=5
  1193. yy=0
  1194. for i = 1 to len(mUSRNM)
  1195.   if xx=5
  1196.     @ xx,  yy say "Cnt User Name                Type"
  1197.     @ xx+1,yy say "=== ======================== ===="
  1198.     xx=xx+2
  1199.   endi
  1200.     @ xx,  yy    say trans(i,"###")
  1201.     @ xx,  yy+4  say trans(mUSRNM[i],"XXXXXXXXXXXXXXXXXXXXXXXX")
  1202.     @ xx,  yy+30 say trans(mOBTP[i],"###")
  1203.   xx=xx+1
  1204.   if xx=23
  1205.     xx=5
  1206.     if yy=0
  1207.       yy=yy+43
  1208.     else
  1209.       yy=0
  1210.       @ 23,0
  1211.       @ 23,0 say "Press any key to continue..."
  1212.       inkey(0)
  1213.       @ 5,0 clear to 23,79
  1214.     endi
  1215.   endi
  1216. next
  1217. @ 23,0
  1218. @ 23,0 say "Press any key to return..."
  1219. inkey(0)
  1220. return
  1221.